﻿///@author Rafał Hazan
///@email  rafal.hazan@gmail.com
#ifndef __MULTIPOINT_MUTATION___
#define __MULTIPOINT_MUTATION___

#include "MutationOperator.h"
#include "RandomGenerator.h"
#include "EvolutionaryAlgorithm.h"

/// Mutacja wielopunktowa, lekko zmodyfikowana.
class MultipointMutation : public MutationOperator
{
private:
	RandomGenerator _random;

public:
	virtual ~MultipointMutation(void) {}
	/// Mutuj! Wybrane losowo, nie nalezace do podgrafu wierzcholki sa mutowane (dodawane do kliki), tylko jesli beda tworzyly klike z istniejcym podgrafem
	virtual EvolutionaryAlgorithm::population_type mutate(EvolutionaryAlgorithm::population_type & actualPopulation);
};

#endif